/**
 * staticTest， 静态方法和变量的一个测试类
 */

public class StaticTest {
    // unit Test
    public static void main(String[] args) {
        Employee employee = new Employee("bob", 12);
        System.out.println(employee.getName());


        Employee[] employees = new Employee[3];
        employees[0] = new Employee("bob1", 12);
        employees[1] = new Employee("bob2", 13);
        employees[2] = new Employee("bob3", 14);


        for (Employee e: employees){
            System.out.println("name: "+e.getName()+",age: "+e.getAge());
        }

        // 静态变量可以直接被类名进行调用。
        // 静态方法可以直接调用， 或者类名调用。
        int nextId = Employee.getNextID();
        System.out.println("nextId:"+nextId);
    }




}

/*
创建类， 不应该加'()'也不是方法， 哪来的参数！！！！！！！
 */
class Employee {

    private static int nextID = 1;

    private String name;
    private int age;

    public Employee(String s, int a) {
        name = s;
        age = a;
    }

    public static int getNextID() {
        return nextID;
    }

    public static void setNextID(int nextID) {
        Employee.nextID = nextID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "name="+name +",age" + age;
    }

    public static void main(String[] args) {
        Employee e = new Employee("cookie", 22);

        // 在同一个类里面， 可以直接使用get、set方法。
        int nextID = getNextID();

        System.out.println(e.getName());
        System.out.println(e.getAge());
        e.setName("mango");
        e.setAge(10000);
        System.out.println(e.toString());
        System.out.println(nextID);
    }
}


/**
 * 如果一个public类里面包含两个类和两个main函数，
 * 那么， 在javac时候，会生成两个.class 文件。
 *
 *
 * 可以选择java []  执行想要执行的class文件。
 */

